package com.example.entity;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

@Data
@TableName("exam_records")
public class ExamRecord {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    private Long examId;                // 考试ID
    private Long studentId;             // 学生ID
    private Long classId;               // 班级ID
    
    private Double score;               // 得分
    private Boolean passed;             // 是否通过
    
    private LocalDateTime startTime;    // 开始答题时间
    private LocalDateTime endTime;      // 结束答题时间
    private LocalDateTime submitTime;   // 提交时间
    private Integer remainingTime;      // 剩余时间(秒)
    private LocalDateTime lastActiveTime; // 最后活动时间
    
    private String status;              // 状态: NOT_STARTED-未开始, IN_PROGRESS-进行中, SUBMITTED-已提交, TIMEOUT-超时, MARKED-已批改
    private String answers;             // 答案 (JSON格式)
    private String markingComments;     // 批改评语
    private String scoringDetails;      // 评分详情 (JSON格式)
    
    // 新增可疑行为计数字段
    private Integer keyboardShortcutCount;
    private Integer copyPasteCount;
    private Integer tabSwitchCount;
    private Integer suspiciousLevel;
    
    private String markingStatus;       // 批改状态：PENDING-待批改, IN_PROGRESS-批改中, COMPLETED-已完成
    private Long markingTeacherId;      // 批改教师ID
    private LocalDateTime markingStartTime; // 开始批改时间
    private LocalDateTime markingEndTime;   // 完成批改时间
    
    private LocalDateTime createTime;   // 创建时间
    private LocalDateTime updateTime;   // 更新时间
    private Boolean autoSubmitted;      // 是否自动提交

    @TableField(exist = false)
    private List<Map<String, Object>> questions; // 题目列表，包含题目详细信息
} 